package org.zk.service;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import lombok.Getter;
import lombok.Setter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.zk.dao.UserDao;
import org.zk.entity.User;

import java.util.List;
import java.util.Map;
//========================================== 业务层 ==============================================
@Service
public class UserService {
    //:注意！！！自动注入Dao层，这样Services层才能用Dao层的接口
    @Autowired
    @Setter
    @Getter
    private UserDao userDao;

    //业务1：查询所有的数据并完成分页，此方法中调用了多个Dao层的接口
    public Page queryLikeUsers(Map<String, Object> cond) {
        //该Page是我们mybatis-config.xml中的配置的自动分页的插件中的类，可以直接使用
        Page page = new Page();
        //调用dao层接口获得总条数并赋给分页插件中对应的total属性
        page.setTotal(userDao.getLikeUsersCount(cond));
        //分别获取每页条数和当前页
        int pageSize = Integer.parseInt(String.valueOf(cond.get("pageSize")));
        page.setPageSize(pageSize);
        int curPageNum = Integer.parseInt(String.valueOf(cond.get("pageNum")));
        page.setPageNum(curPageNum);

        //注意：下面两句一定要写在一起，pageHelper插件会自动把查询结果进行分页
        page = PageHelper.startPage(curPageNum, pageSize);
        List list = userDao.getLikeUsers(cond);

        return page;//把分页插件中的page对象返回
    }

    //业务2.查询指定id的用户数据，以便修改这个数据
    public User getUserById(int userid) {
        return userDao.getUserById(userid);
    }

    //业务3.修改指定id的数据
    public int updateUser(User user) {
        return userDao.editUser(user);
    }
    //业务4.添加一个新用户
    public int addUser(User user){return userDao.addUser(user);}
    //业务5.删除一个用户
    public int delUser(User user){return userDao.delUser(user);}



}
